Vector Math
Here is a list of guides on 3D vectors and points: Basics *Vectors in Project Spark *Further explanation on what the direction of a vector means *Displaying on screen in Project Spark *Written tutorial on vectors *Tutorial on barycentres (centroid) *[between two points|[distance to tile (and how to implement it manually with the Pythagorean theorem)]] Coordinate spaces *Object Space: The space tile is used to get the coordinate of a point/vector in the coordinate system of your object, this is to say that the origin of the system will be your object's position, the x axis will be right, the y axis up, and the z axis forward. If you want to calculate the vector in the object space, simply write vector object space. If you need to get the object space coordinates of a point however, calculate the offset vector from your position to the point. Then, you can use object space on the vector to get the coordinates of the point in the coordinate system of the character. Use object space again to get the offset with the world coordinates. Be careful, trying to use the object space tile directly on the position of the object does not work. You can only apply object space and camera space to a vector. Applying object space to a position "pos" (relative to your character's coordinate system) works well, since it is equivalent to the vector pos minus zero where zero is the origin in the character's coordinate system. *Explanations on coordinate spaces, and the behaviour of move in relation to these spaces, in the thread Inverting Movement Controls. There is also a showcase level Coordinate spaces to illustrate how that works and to better understand the explanations of the thread. Cameras *Boom camera pitch and yaw, target position and offset (also explains between) *Camera over the shoulder using a follow camera (read up to the last post, which corrects a few mistakes and gives the kode in Kodeshare) Small examples of Kode using vectors *Displaying a cursor on screen *Object orbiting around another (simple but slightly inaccurate method) *Object orbiting around another (exact method) *Spinning an object (rotating) — this is a generalisation of "object orbiting around another" *Reflecting *Camera that you can rotate when holding right mouse button — uses the pitch and yaw modifiers of the boom camera Some tips *Make sure like I said in my vectors tutorial to know when you're using a point, and when you're using a vector. Some functions have modifiers like "toward" or "in direction". "Toward" needs a point, while "in direction" needs a vector. *You can use WHEN DO display element screen at position WHEN DO display position centre to know where to place your UI elements. *Some inputs are vectors: left stick, right stick, WASD, arrow keys, D-pad. And you also have mouse position, and its modifiers "object", "terrain" or "world". If you need the left stick vector, store it in a vector variable "left stick", and use that variable, as the stick tile is unstable and sometimes gives a vector with x and z coordinates, and sometimes with x and y coordinates. If you need the vector with x and z coordinates, use this Kode: stick (vector variable) equals stick And if you prefer x and y coordinates: stick (vector variable) equals rotate stick since for some reasons, stick after rotate (but also after display, and some other tiles) changes to x and y coordinates. *If you need some randomness, there's a vector tile. It has lots of modifiers, so make sure to check them out. *Object relative vectors like "forward", "up", etc., the camera vector "camera forward", and world relative vectors like "east", "world up", etc. are normalised vectors (they have a length of 1). For example, setting forward to 2*forward won't do anything. Math courses (expands on the various vector tutorials from a mathematical point of view) *Vector maths – a primer for games programmers *2D Transformations (translations, rotations, reflections) explained in a simple way, with drawings and exercices at the end - Video courses on 2D and 3D vectors: **Linear Algebra: Geometry and Algebra of Vectors | Basics **Calculus III (Multivariable Calculus): 2D vectors. Calculus III: Two Dimensional Vectors, from 11 Calculus III: Two Dimensional Vectors (Level 1 of 13) | Basics to 20 Calculus III: Two Dimensional Vectors (Level 10 of 13) | Unit Vector Examples, you can continue up to the 23rd video (Level 13 of 13) for three videos on the applications of vectors in Physics. **Calculus III (Multivariable Calculus): 3D vectors. The videos that are relevant to what you will need for Project Spark's use of vectors are: ***the videos 1, 2, 4, 6 1 Calculus III: Three Dimensional Coordinate Systems (Level 1 of 10) | Basics, 2 Calculus III: Three Dimensional Coordinate Systems (Level 2 of 10) | Equations, 4 Calculus III: Three Dimensional Coordinate Systems (Level 4 of 10) | Midpoint, Distance Formulas, 6 Calculus III: Three Dimensional Coordinate Systems (Level 6 of 10) | Distance Formula Examples for the whole courses, the videos 24, 25, 26 Calculus III: Three Dimensional Vectors for a review and some examples, and the videos 27, 28, 29, 30 Calculus III: The Dot Product for a detailed course on the dot product *Video 3D Transformations (goes extensively on 3D rotation, and the use of pitch, yaw, roll with relative or the default relative) Source: http://forums.projectspark.com/yaf_postsm88328_vectors-guide.aspx#post88328